<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.9.1"/>
<title>knet: E:/knet-git/knet/knet/channel_ref.h 源文件</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">knet
   &#160;<span id="projectnumber">1.4.5</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- 制作者 Doxygen 1.8.9.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'搜索');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>首页</span></a></li>
      <li><a href="modules.html"><span>模块</span></a></li>
      <li><a href="annotated.html"><span>结构体</span></a></li>
      <li class="current"><a href="files.html"><span>文件</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="搜索" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>文件列表</span></a></li>
      <li><a href="globals.html"><span>全局定义</span></a></li>
    </ul>
  </div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="dir_885cc87fac2d91e269af0a5a959fa5f6.html">E:</a></li><li class="navelem"><a class="el" href="dir_4e74998c9a9305a116abc25fcf9a1edb.html">knet-git</a></li><li class="navelem"><a class="el" href="dir_a1c045b39f32066568ae964b52db514f.html">knet</a></li><li class="navelem"><a class="el" href="dir_f76d03789f0b12416cfffea59e2ed47d.html">knet</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="headertitle">
<div class="title">channel_ref.h</div>  </div>
</div><!--header-->
<div class="contents">
<a href="a00054.html">浏览该文件的文档.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Copyright (c) 2014-2015, dennis wang</span></div>
<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * All rights reserved.</span></div>
<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * </span></div>
<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * Redistribution and use in source and binary forms, with or without</span></div>
<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * modification, are permitted provided that the following conditions are met:</span></div>
<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> *     * Redistributions of source code must retain the above copyright</span></div>
<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> *       notice, this list of conditions and the following disclaimer.</span></div>
<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *     * Redistributions in binary form must reproduce the above copyright</span></div>
<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *       notice, this list of conditions and the following disclaimer in the</span></div>
<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *       documentation and/or other materials provided with the distribution.</span></div>
<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * </span></div>
<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS &quot;AS IS&quot; AND</span></div>
<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED</span></div>
<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE</span></div>
<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY</span></div>
<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES</span></div>
<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;</span></div>
<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="comment"> * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND</span></div>
<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="comment"> * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT</span></div>
<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="comment"> * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS</span></div>
<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="comment"> * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</span></div>
<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;</div>
<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="preprocessor">#ifndef CHANNEL_REF_H</span></div>
<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="preprocessor">#define CHANNEL_REF_H</span></div>
<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;</div>
<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00056.html">config.h</a>&quot;</span></div>
<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00055.html">channel_ref_api.h</a>&quot;</span></div>
<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;</div>
<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<a class="code" href="a00005.html">kchannel_ref_t</a>* <a class="code" href="a00054_ab3c8eae266a90aee181b0cf4e9bcc731.html#ab3c8eae266a90aee181b0cf4e9bcc731">knet_channel_ref_create</a>(<a class="code" href="a00033.html">kloop_t</a>* loop, <a class="code" href="a00006.html">kchannel_t</a>* channel);</div>
<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;</div>
<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;<span class="keywordtype">int</span> <a class="code" href="a00054_ae61ef5acd0738591947edac25e2d0ccf.html#ae61ef5acd0738591947edac25e2d0ccf">knet_channel_ref_destroy</a>(<a class="code" href="a00005.html">kchannel_ref_t</a>* channel_ref);</div>
<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;</div>
<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;<span class="keywordtype">void</span> <a class="code" href="a00054_a0bbe382b036918b6a75f8d2d3e8b6a44.html#a0bbe382b036918b6a75f8d2d3e8b6a44">knet_channel_ref_close_check_reconnect</a>(<a class="code" href="a00005.html">kchannel_ref_t</a>* channel_ref);</div>
<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;</div>
<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;<span class="keywordtype">int</span> <a class="code" href="a00054_a1536dcaeffcf43addfb34b406dbafd4f.html#a1536dcaeffcf43addfb34b406dbafd4f">knet_channel_ref_write</a>(<a class="code" href="a00005.html">kchannel_ref_t</a>* channel_ref, <span class="keyword">const</span> <span class="keywordtype">char</span>* data, <span class="keywordtype">int</span> size);</div>
<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;</div>
<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;<a class="code" href="a00005.html">kchannel_ref_t</a>* <a class="code" href="a00054_a97f52cae86124080471b331333852734.html#a97f52cae86124080471b331333852734">knet_channel_ref_accept_from_socket_fd</a>(<a class="code" href="a00005.html">kchannel_ref_t</a>* channel_ref, <a class="code" href="a00033.html">kloop_t</a>* loop, <a class="code" href="a00056_a0d9e0afbf02fb6ed6c5b1415dce51b05.html#a0d9e0afbf02fb6ed6c5b1415dce51b05">socket_t</a> client_fd, <span class="keywordtype">int</span> event);</div>
<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;</div>
<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;<a class="code" href="a00033.html">kloop_t</a>* <a class="code" href="a00054_a6388ed40ffcaef7e775cae207486d308.html#a6388ed40ffcaef7e775cae207486d308">knet_channel_ref_choose_loop</a>(<a class="code" href="a00005.html">kchannel_ref_t</a>* channel_ref);</div>
<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;</div>
<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;<span class="keywordtype">void</span> <a class="code" href="a00054_a61952ee84bc8d572ab77163e919a54d8.html#a61952ee84bc8d572ab77163e919a54d8">knet_channel_ref_set_loop_node</a>(<a class="code" href="a00005.html">kchannel_ref_t</a>* channel_ref, <a class="code" href="a00007.html">kdlist_node_t</a>* node);</div>
<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;</div>
<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;<a class="code" href="a00007.html">kdlist_node_t</a>* <a class="code" href="a00054_acdd3ead2d27ffb0a86eba8f509631433.html#acdd3ead2d27ffb0a86eba8f509631433">knet_channel_ref_get_loop_node</a>(<a class="code" href="a00005.html">kchannel_ref_t</a>* channel_ref);</div>
<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;</div>
<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;<span class="keywordtype">int</span> <a class="code" href="a00054_a6073314ca2d5893cf909982114ff6b9c.html#a6073314ca2d5893cf909982114ff6b9c">knet_channel_ref_connect_in_loop</a>(<a class="code" href="a00005.html">kchannel_ref_t</a>* channel_ref);</div>
<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;</div>
<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;<span class="keywordtype">int</span> <a class="code" href="a00054_ab64661cda8927dfc74879f1f4a4bff13.html#ab64661cda8927dfc74879f1f4a4bff13">knet_channel_ref_connect_in_loop_address</a>(<a class="code" href="a00005.html">kchannel_ref_t</a>* channel_ref);</div>
<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;</div>
<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;<span class="keywordtype">void</span> <a class="code" href="a00054_a0f7a4b69f5d64aebd6b33ca0a4311ffb.html#a0f7a4b69f5d64aebd6b33ca0a4311ffb">knet_channel_ref_update_accept_in_loop</a>(<a class="code" href="a00033.html">kloop_t</a>* loop, <a class="code" href="a00005.html">kchannel_ref_t</a>* channel_ref);</div>
<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;</div>
<div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;<span class="keywordtype">void</span> <a class="code" href="a00054_ac8b7765a914482ea59e209704f8f0fac.html#ac8b7765a914482ea59e209704f8f0fac">knet_channel_ref_accept_async</a>(<a class="code" href="a00005.html">kchannel_ref_t</a>* channel_ref);</div>
<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;</div>
<div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;<span class="keywordtype">void</span> <a class="code" href="a00054_a52b9ae9721f4e2dc6d6d649191c5d59d.html#a52b9ae9721f4e2dc6d6d649191c5d59d">knet_channel_ref_update_close_in_loop</a>(<a class="code" href="a00033.html">kloop_t</a>* loop, <a class="code" href="a00005.html">kchannel_ref_t</a>* channel_ref);</div>
<div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;</div>
<div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;<span class="keywordtype">void</span> <a class="code" href="a00054_a3baff51e9f31471fbbac3d5ec4d125f1.html#a3baff51e9f31471fbbac3d5ec4d125f1">knet_channel_ref_update_send_in_loop</a>(<a class="code" href="a00033.html">kloop_t</a>* loop, <a class="code" href="a00005.html">kchannel_ref_t</a>* channel_ref, <a class="code" href="a00003.html">kbuffer_t</a>* send_buffer);</div>
<div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;</div>
<div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;<span class="keywordtype">void</span> <a class="code" href="a00054_a2e022541aa1a4ff04a15cd134788e335.html#a2e022541aa1a4ff04a15cd134788e335">knet_channel_ref_set_flag</a>(<a class="code" href="a00005.html">kchannel_ref_t</a>* channel_ref, <span class="keywordtype">int</span> flag);</div>
<div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;</div>
<div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;<span class="keywordtype">int</span> <a class="code" href="a00054_ab8e70df787656b096fb57716453fdb62.html#ab8e70df787656b096fb57716453fdb62">knet_channel_ref_get_flag</a>(<a class="code" href="a00005.html">kchannel_ref_t</a>* channel_ref);</div>
<div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;</div>
<div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;<span class="keywordtype">void</span> <a class="code" href="a00054_a9c7f39305266c9bf15cd40b8cdf6013e.html#a9c7f39305266c9bf15cd40b8cdf6013e">knet_channel_ref_set_data</a>(<a class="code" href="a00005.html">kchannel_ref_t</a>* channel_ref, <span class="keywordtype">void</span>* data);</div>
<div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;</div>
<div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;<span class="keywordtype">void</span>* <a class="code" href="a00054_a16cd64ed0ec7f68931aea3abd3bf1e24.html#a16cd64ed0ec7f68931aea3abd3bf1e24">knet_channel_ref_get_data</a>(<a class="code" href="a00005.html">kchannel_ref_t</a>* channel_ref);</div>
<div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;</div>
<div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;<span class="keywordtype">void</span> <a class="code" href="a00054_a86bb8fd97323daf88aff1b8e9bbfe47c.html#a86bb8fd97323daf88aff1b8e9bbfe47c">knet_channel_ref_set_loop</a>(<a class="code" href="a00005.html">kchannel_ref_t</a>* channel_ref, <a class="code" href="a00033.html">kloop_t</a>* loop);</div>
<div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;</div>
<div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;<span class="keywordtype">void</span> <a class="code" href="a00054_a660d3d2503c1c6320394fc382e192849.html#a660d3d2503c1c6320394fc382e192849">knet_channel_ref_set_event</a>(<a class="code" href="a00005.html">kchannel_ref_t</a>* channel_ref, <a class="code" href="a00056_accd62b4c787cfb91e81aa14210302863.html#accd62b4c787cfb91e81aa14210302863">knet_channel_event_e</a> e);</div>
<div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;</div>
<div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;<a class="code" href="a00056_accd62b4c787cfb91e81aa14210302863.html#accd62b4c787cfb91e81aa14210302863">knet_channel_event_e</a> <a class="code" href="a00054_a8fa7b957151c8dd347d1fbedfea475e5.html#a8fa7b957151c8dd347d1fbedfea475e5">knet_channel_ref_get_event</a>(<a class="code" href="a00005.html">kchannel_ref_t</a>* channel_ref);</div>
<div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;</div>
<div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;<span class="keywordtype">void</span> <a class="code" href="a00054_ac9f005bb64c11a6cf94a0809aa4e0866.html#ac9f005bb64c11a6cf94a0809aa4e0866">knet_channel_ref_clear_event</a>(<a class="code" href="a00005.html">kchannel_ref_t</a>* channel_ref, <a class="code" href="a00056_accd62b4c787cfb91e81aa14210302863.html#accd62b4c787cfb91e81aa14210302863">knet_channel_event_e</a> e);</div>
<div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;</div>
<div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;<span class="keywordtype">int</span> <a class="code" href="a00054_ab88ee14b4ea5633be7e4e46c622a40d3.html#ab88ee14b4ea5633be7e4e46c622a40d3">knet_channel_ref_check_event</a>(<a class="code" href="a00005.html">kchannel_ref_t</a>* channel_ref, <a class="code" href="a00056_accd62b4c787cfb91e81aa14210302863.html#accd62b4c787cfb91e81aa14210302863">knet_channel_event_e</a> event);</div>
<div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;</div>
<div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;<span class="keywordtype">void</span> <a class="code" href="a00054_aff3748511b10f9d9df9375c5d816eb37.html#aff3748511b10f9d9df9375c5d816eb37">knet_channel_ref_set_state</a>(<a class="code" href="a00005.html">kchannel_ref_t</a>* channel_ref, <a class="code" href="a00056_a74ff83eaafca5c7093accdc65c6b0646.html#a74ff83eaafca5c7093accdc65c6b0646">knet_channel_state_e</a> state);</div>
<div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;</div>
<div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;<span class="keywordtype">void</span> <a class="code" href="a00054_a011250f757798988f6da99b53c74e9c8.html#a011250f757798988f6da99b53c74e9c8">knet_channel_ref_update</a>(<a class="code" href="a00005.html">kchannel_ref_t</a>* channel_ref, <a class="code" href="a00056_accd62b4c787cfb91e81aa14210302863.html#accd62b4c787cfb91e81aa14210302863">knet_channel_event_e</a> e, time_t ts);</div>
<div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;</div>
<div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;<span class="keywordtype">void</span> <a class="code" href="a00054_a39cd9444637453f7cc1b601d0d69eb5b.html#a39cd9444637453f7cc1b601d0d69eb5b">knet_channel_ref_update_accept</a>(<a class="code" href="a00005.html">kchannel_ref_t</a>* channel_ref);</div>
<div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;</div>
<div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160;<span class="keywordtype">void</span> <a class="code" href="a00054_a22a512506db436ec5a274202edcba89e.html#a22a512506db436ec5a274202edcba89e">knet_channel_ref_update_connect</a>(<a class="code" href="a00005.html">kchannel_ref_t</a>* channel_ref);</div>
<div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;</div>
<div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;<span class="keywordtype">void</span> <a class="code" href="a00054_a3d90a5ee67452c8083c0f1b3712310fd.html#a3d90a5ee67452c8083c0f1b3712310fd">knet_channel_ref_update_recv</a>(<a class="code" href="a00005.html">kchannel_ref_t</a>* channel_ref);</div>
<div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160;</div>
<div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;<span class="keywordtype">void</span> <a class="code" href="a00054_a4bdd7b15093a0b5bec991ed019bb130c.html#a4bdd7b15093a0b5bec991ed019bb130c">knet_channel_ref_update_send</a>(<a class="code" href="a00005.html">kchannel_ref_t</a>* channel_ref);</div>
<div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160;</div>
<div class="line"><a name="l00254"></a><span class="lineno">  254</span>&#160;<span class="keywordtype">int</span> <a class="code" href="a00054_aa87f4087c20f1937dd7d75ab783e1114.html#aa87f4087c20f1937dd7d75ab783e1114">knet_channel_ref_check_connect_timeout</a>(<a class="code" href="a00005.html">kchannel_ref_t</a>* channel_ref, time_t ts);</div>
<div class="line"><a name="l00255"></a><span class="lineno">  255</span>&#160;</div>
<div class="line"><a name="l00263"></a><span class="lineno">  263</span>&#160;<span class="keywordtype">int</span> <a class="code" href="a00054_acaa4747a62cce770cc798c2c30bf2670.html#acaa4747a62cce770cc798c2c30bf2670">knet_channel_ref_check_timeout</a>(<a class="code" href="a00005.html">kchannel_ref_t</a>* channel_ref, time_t ts);</div>
<div class="line"><a name="l00264"></a><span class="lineno">  264</span>&#160;</div>
<div class="line"><a name="l00270"></a><span class="lineno">  270</span>&#160;<a class="code" href="a00034.html">kringbuffer_t</a>* <a class="code" href="a00054_a223616ac0204f928d4c85e2d59d98bda.html#a223616ac0204f928d4c85e2d59d98bda">knet_channel_ref_get_ringbuffer</a>(<a class="code" href="a00005.html">kchannel_ref_t</a>* channel_ref);</div>
<div class="line"><a name="l00271"></a><span class="lineno">  271</span>&#160;</div>
<div class="line"><a name="l00277"></a><span class="lineno">  277</span>&#160;<a class="code" href="a00056_a8a7d96123ef4565c6d08fe58a10476a9.html#a8a7d96123ef4565c6d08fe58a10476a9">knet_channel_ref_cb_t</a> <a class="code" href="a00054_a51588a9377f745308695f9332c4e242f.html#a51588a9377f745308695f9332c4e242f">knet_channel_ref_get_cb</a>(<a class="code" href="a00005.html">kchannel_ref_t</a>* channel_ref);</div>
<div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160;</div>
<div class="line"><a name="l00284"></a><span class="lineno">  284</span>&#160;<span class="keywordtype">void</span> <a class="code" href="a00054_a9576bac459baba7c258ae8504f1fbad3.html#a9576bac459baba7c258ae8504f1fbad3">knet_channel_ref_set_domain_node</a>(<a class="code" href="a00005.html">kchannel_ref_t</a>* channel_ref, <a class="code" href="a00007.html">kdlist_node_t</a>* node);</div>
<div class="line"><a name="l00285"></a><span class="lineno">  285</span>&#160;</div>
<div class="line"><a name="l00291"></a><span class="lineno">  291</span>&#160;<a class="code" href="a00007.html">kdlist_node_t</a>* <a class="code" href="a00054_a73d7e2605300866e15b64bc0aa70f16d.html#a73d7e2605300866e15b64bc0aa70f16d">knet_channel_ref_get_domain_node</a>(<a class="code" href="a00005.html">kchannel_ref_t</a>* channel_ref);</div>
<div class="line"><a name="l00292"></a><span class="lineno">  292</span>&#160;</div>
<div class="line"><a name="l00299"></a><span class="lineno">  299</span>&#160;<span class="keywordtype">int</span> <a class="code" href="a00054_a320eba2d439fc73634d1da04d1aa331e.html#a320eba2d439fc73634d1da04d1aa331e">knet_channel_ref_check_share</a>(<a class="code" href="a00005.html">kchannel_ref_t</a>* channel_ref);</div>
<div class="line"><a name="l00300"></a><span class="lineno">  300</span>&#160;</div>
<div class="line"><a name="l00306"></a><span class="lineno">  306</span>&#160;<span class="keywordtype">void</span> <a class="code" href="a00054_ab95b2c215da829c9f6cec2d7519bb79e.html#ab95b2c215da829c9f6cec2d7519bb79e">knet_channel_ref_set_domain_id</a>(<a class="code" href="a00005.html">kchannel_ref_t</a>* channel_ref, uint64_t domain_id);</div>
<div class="line"><a name="l00307"></a><span class="lineno">  307</span>&#160;</div>
<div class="line"><a name="l00313"></a><span class="lineno">  313</span>&#160;uint64_t <a class="code" href="a00054_a1c889495cfd41279b4f9322f5361161f.html#a1c889495cfd41279b4f9322f5361161f">knet_channel_ref_get_domain_id</a>(<a class="code" href="a00005.html">kchannel_ref_t</a>* channel_ref);</div>
<div class="line"><a name="l00314"></a><span class="lineno">  314</span>&#160;</div>
<div class="line"><a name="l00319"></a><span class="lineno">  319</span>&#160;<span class="keywordtype">void</span> <a class="code" href="a00054_aa2180d5a8bdc915fd31983a3b5b17322.html#aa2180d5a8bdc915fd31983a3b5b17322">knet_channel_ref_incref</a>(<a class="code" href="a00005.html">kchannel_ref_t</a>* channel_ref);</div>
<div class="line"><a name="l00320"></a><span class="lineno">  320</span>&#160;</div>
<div class="line"><a name="l00325"></a><span class="lineno">  325</span>&#160;<span class="keywordtype">void</span> <a class="code" href="a00054_ae45c4b7c756ea6668832f1b302821363.html#ae45c4b7c756ea6668832f1b302821363">knet_channel_ref_decref</a>(<a class="code" href="a00005.html">kchannel_ref_t</a>* channel_ref);</div>
<div class="line"><a name="l00326"></a><span class="lineno">  326</span>&#160;</div>
<div class="line"><a name="l00333"></a><span class="lineno">  333</span>&#160;<span class="keywordtype">int</span> <a class="code" href="a00054_a83ec9381b50f17f920319cae57007bb7.html#a83ec9381b50f17f920319cae57007bb7">knet_channel_ref_check_ref_zero</a>(<a class="code" href="a00005.html">kchannel_ref_t</a>* channel_ref);</div>
<div class="line"><a name="l00334"></a><span class="lineno">  334</span>&#160;</div>
<div class="line"><a name="l00340"></a><span class="lineno">  340</span>&#160;<span class="keywordtype">int</span> <a class="code" href="a00054_ab11817f208b858dea9792a0c9ea9e4bb.html#ab11817f208b858dea9792a0c9ea9e4bb">knet_channel_ref_get_ref</a>(<a class="code" href="a00005.html">kchannel_ref_t</a>* channel_ref);</div>
<div class="line"><a name="l00341"></a><span class="lineno">  341</span>&#160;</div>
<div class="line"><a name="l00342"></a><span class="lineno">  342</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* CHANNEL_REF_H */</span><span class="preprocessor"></span></div>
<div class="ttc" id="a00054_a52b9ae9721f4e2dc6d6d649191c5d59d_html_a52b9ae9721f4e2dc6d6d649191c5d59d"><div class="ttname"><a href="a00054_a52b9ae9721f4e2dc6d6d649191c5d59d.html#a52b9ae9721f4e2dc6d6d649191c5d59d">knet_channel_ref_update_close_in_loop</a></div><div class="ttdeci">void knet_channel_ref_update_close_in_loop(kloop_t *loop, kchannel_ref_t *channel_ref)</div><div class="ttdoc">在kloop_t所运行的线程内完成关闭流程 通过跨线程关闭触发 </div><div class="ttdef"><b>Definition:</b> channel_ref.c:284</div></div>
<div class="ttc" id="a00054_ab64661cda8927dfc74879f1f4a4bff13_html_ab64661cda8927dfc74879f1f4a4bff13"><div class="ttname"><a href="a00054_ab64661cda8927dfc74879f1f4a4bff13.html#ab64661cda8927dfc74879f1f4a4bff13">knet_channel_ref_connect_in_loop_address</a></div><div class="ttdeci">int knet_channel_ref_connect_in_loop_address(kchannel_ref_t *channel_ref)</div><div class="ttdoc">在kloop_t所运行的线程内完成连接流程 </div></div>
<div class="ttc" id="a00054_a3baff51e9f31471fbbac3d5ec4d125f1_html_a3baff51e9f31471fbbac3d5ec4d125f1"><div class="ttname"><a href="a00054_a3baff51e9f31471fbbac3d5ec4d125f1.html#a3baff51e9f31471fbbac3d5ec4d125f1">knet_channel_ref_update_send_in_loop</a></div><div class="ttdeci">void knet_channel_ref_update_send_in_loop(kloop_t *loop, kchannel_ref_t *channel_ref, kbuffer_t *send_buffer)</div><div class="ttdoc">在kloop_t所运行的线程内发送 通过跨线程发送触发 </div><div class="ttdef"><b>Definition:</b> channel_ref.c:336</div></div>
<div class="ttc" id="a00054_a6388ed40ffcaef7e775cae207486d308_html_a6388ed40ffcaef7e775cae207486d308"><div class="ttname"><a href="a00054_a6388ed40ffcaef7e775cae207486d308.html#a6388ed40ffcaef7e775cae207486d308">knet_channel_ref_choose_loop</a></div><div class="ttdeci">kloop_t * knet_channel_ref_choose_loop(kchannel_ref_t *channel_ref)</div><div class="ttdoc">取得管道相关联的kloop_t实例 </div><div class="ttdef"><b>Definition:</b> channel_ref.c:620</div></div>
<div class="ttc" id="a00056_html"><div class="ttname"><a href="a00056.html">config.h</a></div></div>
<div class="ttc" id="a00056_a8a7d96123ef4565c6d08fe58a10476a9_html_a8a7d96123ef4565c6d08fe58a10476a9"><div class="ttname"><a href="a00056_a8a7d96123ef4565c6d08fe58a10476a9.html#a8a7d96123ef4565c6d08fe58a10476a9">knet_channel_ref_cb_t</a></div><div class="ttdeci">void(* knet_channel_ref_cb_t)(kchannel_ref_t *, knet_channel_cb_event_e)</div><div class="ttdef"><b>Definition:</b> config.h:297</div></div>
<div class="ttc" id="a00054_a9576bac459baba7c258ae8504f1fbad3_html_a9576bac459baba7c258ae8504f1fbad3"><div class="ttname"><a href="a00054_a9576bac459baba7c258ae8504f1fbad3.html#a9576bac459baba7c258ae8504f1fbad3">knet_channel_ref_set_domain_node</a></div><div class="ttdeci">void knet_channel_ref_set_domain_node(kchannel_ref_t *channel_ref, kdlist_node_t *node)</div><div class="ttdoc">设置域链表节点 </div><div class="ttdef"><b>Definition:</b> channel_ref.c:734</div></div>
<div class="ttc" id="a00003_html"><div class="ttname"><a href="a00003.html">_buffer_t</a></div><div class="ttdef"><b>Definition:</b> buffer.c:28</div></div>
<div class="ttc" id="a00054_a51588a9377f745308695f9332c4e242f_html_a51588a9377f745308695f9332c4e242f"><div class="ttname"><a href="a00054_a51588a9377f745308695f9332c4e242f.html#a51588a9377f745308695f9332c4e242f">knet_channel_ref_get_cb</a></div><div class="ttdeci">knet_channel_ref_cb_t knet_channel_ref_get_cb(kchannel_ref_t *channel_ref)</div><div class="ttdoc">取得管道事件回调 </div><div class="ttdef"><b>Definition:</b> channel_ref.c:701</div></div>
<div class="ttc" id="a00054_a3d90a5ee67452c8083c0f1b3712310fd_html_a3d90a5ee67452c8083c0f1b3712310fd"><div class="ttname"><a href="a00054_a3d90a5ee67452c8083c0f1b3712310fd.html#a3d90a5ee67452c8083c0f1b3712310fd">knet_channel_ref_update_recv</a></div><div class="ttdeci">void knet_channel_ref_update_recv(kchannel_ref_t *channel_ref)</div><div class="ttdoc">管道事件处理-有数据可读 </div><div class="ttdef"><b>Definition:</b> channel_ref.c:541</div></div>
<div class="ttc" id="a00054_a61952ee84bc8d572ab77163e919a54d8_html_a61952ee84bc8d572ab77163e919a54d8"><div class="ttname"><a href="a00054_a61952ee84bc8d572ab77163e919a54d8.html#a61952ee84bc8d572ab77163e919a54d8">knet_channel_ref_set_loop_node</a></div><div class="ttdeci">void knet_channel_ref_set_loop_node(kchannel_ref_t *channel_ref, kdlist_node_t *node)</div><div class="ttdoc">设置管道链表节点 </div><div class="ttdef"><b>Definition:</b> channel_ref.c:411</div></div>
<div class="ttc" id="a00054_ae61ef5acd0738591947edac25e2d0ccf_html_ae61ef5acd0738591947edac25e2d0ccf"><div class="ttname"><a href="a00054_ae61ef5acd0738591947edac25e2d0ccf.html#ae61ef5acd0738591947edac25e2d0ccf">knet_channel_ref_destroy</a></div><div class="ttdeci">int knet_channel_ref_destroy(kchannel_ref_t *channel_ref)</div><div class="ttdoc">销毁管道引用 管道引用计数为零时才能被实际销毁 </div><div class="ttdef"><b>Definition:</b> channel_ref.c:86</div></div>
<div class="ttc" id="a00054_a320eba2d439fc73634d1da04d1aa331e_html_a320eba2d439fc73634d1da04d1aa331e"><div class="ttname"><a href="a00054_a320eba2d439fc73634d1da04d1aa331e.html#a320eba2d439fc73634d1da04d1aa331e">knet_channel_ref_check_share</a></div><div class="ttdeci">int knet_channel_ref_check_share(kchannel_ref_t *channel_ref)</div><div class="ttdoc">检查管道引用是否通过调用knet_channel_ref_share()建立 </div><div class="ttdef"><b>Definition:</b> channel_ref.c:744</div></div>
<div class="ttc" id="a00054_ab8e70df787656b096fb57716453fdb62_html_ab8e70df787656b096fb57716453fdb62"><div class="ttname"><a href="a00054_ab8e70df787656b096fb57716453fdb62.html#ab8e70df787656b096fb57716453fdb62">knet_channel_ref_get_flag</a></div><div class="ttdeci">int knet_channel_ref_get_flag(kchannel_ref_t *channel_ref)</div><div class="ttdoc">取得管道自定义标志 </div><div class="ttdef"><b>Definition:</b> channel_ref.c:645</div></div>
<div class="ttc" id="a00054_aa2180d5a8bdc915fd31983a3b5b17322_html_aa2180d5a8bdc915fd31983a3b5b17322"><div class="ttname"><a href="a00054_aa2180d5a8bdc915fd31983a3b5b17322.html#aa2180d5a8bdc915fd31983a3b5b17322">knet_channel_ref_incref</a></div><div class="ttdeci">void knet_channel_ref_incref(kchannel_ref_t *channel_ref)</div><div class="ttdoc">递增当前管道引用计数 </div><div class="ttdef"><b>Definition:</b> channel_ref.c:759</div></div>
<div class="ttc" id="a00054_a8fa7b957151c8dd347d1fbedfea475e5_html_a8fa7b957151c8dd347d1fbedfea475e5"><div class="ttname"><a href="a00054_a8fa7b957151c8dd347d1fbedfea475e5.html#a8fa7b957151c8dd347d1fbedfea475e5">knet_channel_ref_get_event</a></div><div class="ttdeci">knet_channel_event_e knet_channel_ref_get_event(kchannel_ref_t *channel_ref)</div><div class="ttdoc">获取管道已经投递的事件集合 </div><div class="ttdef"><b>Definition:</b> channel_ref.c:427</div></div>
<div class="ttc" id="a00056_a74ff83eaafca5c7093accdc65c6b0646_html_a74ff83eaafca5c7093accdc65c6b0646"><div class="ttname"><a href="a00056_a74ff83eaafca5c7093accdc65c6b0646.html#a74ff83eaafca5c7093accdc65c6b0646">knet_channel_state_e</a></div><div class="ttdeci">enum _channel_state_e knet_channel_state_e</div></div>
<div class="ttc" id="a00054_a9c7f39305266c9bf15cd40b8cdf6013e_html_a9c7f39305266c9bf15cd40b8cdf6013e"><div class="ttname"><a href="a00054_a9c7f39305266c9bf15cd40b8cdf6013e.html#a9c7f39305266c9bf15cd40b8cdf6013e">knet_channel_ref_set_data</a></div><div class="ttdeci">void knet_channel_ref_set_data(kchannel_ref_t *channel_ref, void *data)</div><div class="ttdoc">设置管道自定义数据 </div><div class="ttdef"><b>Definition:</b> channel_ref.c:650</div></div>
<div class="ttc" id="a00055_html"><div class="ttname"><a href="a00055.html">channel_ref_api.h</a></div></div>
<div class="ttc" id="a00006_html"><div class="ttname"><a href="a00006.html">_channel_t</a></div><div class="ttdef"><b>Definition:</b> channel.c:33</div></div>
<div class="ttc" id="a00054_a73d7e2605300866e15b64bc0aa70f16d_html_a73d7e2605300866e15b64bc0aa70f16d"><div class="ttname"><a href="a00054_a73d7e2605300866e15b64bc0aa70f16d.html#a73d7e2605300866e15b64bc0aa70f16d">knet_channel_ref_get_domain_node</a></div><div class="ttdeci">kdlist_node_t * knet_channel_ref_get_domain_node(kchannel_ref_t *channel_ref)</div><div class="ttdoc">取得域链表节点 </div><div class="ttdef"><b>Definition:</b> channel_ref.c:739</div></div>
<div class="ttc" id="a00054_aff3748511b10f9d9df9375c5d816eb37_html_aff3748511b10f9d9df9375c5d816eb37"><div class="ttname"><a href="a00054_aff3748511b10f9d9df9375c5d816eb37.html#aff3748511b10f9d9df9375c5d816eb37">knet_channel_ref_set_state</a></div><div class="ttdeci">void knet_channel_ref_set_state(kchannel_ref_t *channel_ref, knet_channel_state_e state)</div><div class="ttdoc">设置管道状态 </div><div class="ttdef"><b>Definition:</b> channel_ref.c:438</div></div>
<div class="ttc" id="a00054_a223616ac0204f928d4c85e2d59d98bda_html_a223616ac0204f928d4c85e2d59d98bda"><div class="ttname"><a href="a00054_a223616ac0204f928d4c85e2d59d98bda.html#a223616ac0204f928d4c85e2d59d98bda">knet_channel_ref_get_ringbuffer</a></div><div class="ttdeci">kringbuffer_t * knet_channel_ref_get_ringbuffer(kchannel_ref_t *channel_ref)</div><div class="ttdoc">取得管道读缓冲区 </div><div class="ttdef"><b>Definition:</b> channel_ref.c:615</div></div>
<div class="ttc" id="a00054_ab88ee14b4ea5633be7e4e46c622a40d3_html_ab88ee14b4ea5633be7e4e46c622a40d3"><div class="ttname"><a href="a00054_ab88ee14b4ea5633be7e4e46c622a40d3.html#ab88ee14b4ea5633be7e4e46c622a40d3">knet_channel_ref_check_event</a></div><div class="ttdeci">int knet_channel_ref_check_event(kchannel_ref_t *channel_ref, knet_channel_event_e event)</div><div class="ttdoc">检测是否投递了事件 </div><div class="ttdef"><b>Definition:</b> channel_ref.c:448</div></div>
<div class="ttc" id="a00054_ac9f005bb64c11a6cf94a0809aa4e0866_html_ac9f005bb64c11a6cf94a0809aa4e0866"><div class="ttname"><a href="a00054_ac9f005bb64c11a6cf94a0809aa4e0866.html#ac9f005bb64c11a6cf94a0809aa4e0866">knet_channel_ref_clear_event</a></div><div class="ttdeci">void knet_channel_ref_clear_event(kchannel_ref_t *channel_ref, knet_channel_event_e e)</div><div class="ttdoc">取消管道事件 </div><div class="ttdef"><b>Definition:</b> channel_ref.c:432</div></div>
<div class="ttc" id="a00054_ae45c4b7c756ea6668832f1b302821363_html_ae45c4b7c756ea6668832f1b302821363"><div class="ttname"><a href="a00054_ae45c4b7c756ea6668832f1b302821363.html#ae45c4b7c756ea6668832f1b302821363">knet_channel_ref_decref</a></div><div class="ttdeci">void knet_channel_ref_decref(kchannel_ref_t *channel_ref)</div><div class="ttdoc">递减当前管道引用计数 </div><div class="ttdef"><b>Definition:</b> channel_ref.c:764</div></div>
<div class="ttc" id="a00054_a1c889495cfd41279b4f9322f5361161f_html_a1c889495cfd41279b4f9322f5361161f"><div class="ttname"><a href="a00054_a1c889495cfd41279b4f9322f5361161f.html#a1c889495cfd41279b4f9322f5361161f">knet_channel_ref_get_domain_id</a></div><div class="ttdeci">uint64_t knet_channel_ref_get_domain_id(kchannel_ref_t *channel_ref)</div><div class="ttdoc">取得域ID </div><div class="ttdef"><b>Definition:</b> channel_ref.c:754</div></div>
<div class="ttc" id="a00054_a1536dcaeffcf43addfb34b406dbafd4f_html_a1536dcaeffcf43addfb34b406dbafd4f"><div class="ttname"><a href="a00054_a1536dcaeffcf43addfb34b406dbafd4f.html#a1536dcaeffcf43addfb34b406dbafd4f">knet_channel_ref_write</a></div><div class="ttdeci">int knet_channel_ref_write(kchannel_ref_t *channel_ref, const char *data, int size)</div><div class="ttdoc">写入 管道引用计数为零时才能被实际销毁 </div><div class="ttdef"><b>Definition:</b> channel_ref.c:355</div></div>
<div class="ttc" id="a00054_a97f52cae86124080471b331333852734_html_a97f52cae86124080471b331333852734"><div class="ttname"><a href="a00054_a97f52cae86124080471b331333852734.html#a97f52cae86124080471b331333852734">knet_channel_ref_accept_from_socket_fd</a></div><div class="ttdeci">kchannel_ref_t * knet_channel_ref_accept_from_socket_fd(kchannel_ref_t *channel_ref, kloop_t *loop, socket_t client_fd, int event)</div><div class="ttdoc">为通过accept()返回的套接字创建管道引用 </div><div class="ttdef"><b>Definition:</b> channel_ref.c:453</div></div>
<div class="ttc" id="a00054_ac8b7765a914482ea59e209704f8f0fac_html_ac8b7765a914482ea59e209704f8f0fac"><div class="ttname"><a href="a00054_ac8b7765a914482ea59e209704f8f0fac.html#ac8b7765a914482ea59e209704f8f0fac">knet_channel_ref_accept_async</a></div><div class="ttdeci">void knet_channel_ref_accept_async(kchannel_ref_t *channel_ref)</div><div class="ttdoc">在其他完成了listen()和bind()操作，在当前线程的kloop_t内监听 </div><div class="ttdef"><b>Definition:</b> channel_ref.c:228</div></div>
<div class="ttc" id="a00034_html"><div class="ttname"><a href="a00034.html">_ringbuffer_t</a></div><div class="ttdef"><b>Definition:</b> ringbuffer.c:29</div></div>
<div class="ttc" id="a00005_html"><div class="ttname"><a href="a00005.html">_channel_ref_t</a></div><div class="ttdef"><b>Definition:</b> channel_ref.c:61</div></div>
<div class="ttc" id="a00054_a83ec9381b50f17f920319cae57007bb7_html_a83ec9381b50f17f920319cae57007bb7"><div class="ttname"><a href="a00054_a83ec9381b50f17f920319cae57007bb7.html#a83ec9381b50f17f920319cae57007bb7">knet_channel_ref_check_ref_zero</a></div><div class="ttdeci">int knet_channel_ref_check_ref_zero(kchannel_ref_t *channel_ref)</div><div class="ttdoc">测试管道引用是否为零 </div><div class="ttdef"><b>Definition:</b> channel_ref.c:769</div></div>
<div class="ttc" id="a00054_a660d3d2503c1c6320394fc382e192849_html_a660d3d2503c1c6320394fc382e192849"><div class="ttname"><a href="a00054_a660d3d2503c1c6320394fc382e192849.html#a660d3d2503c1c6320394fc382e192849">knet_channel_ref_set_event</a></div><div class="ttdeci">void knet_channel_ref_set_event(kchannel_ref_t *channel_ref, knet_channel_event_e e)</div><div class="ttdoc">投递管道事件 </div><div class="ttdef"><b>Definition:</b> channel_ref.c:421</div></div>
<div class="ttc" id="a00054_ab95b2c215da829c9f6cec2d7519bb79e_html_ab95b2c215da829c9f6cec2d7519bb79e"><div class="ttname"><a href="a00054_ab95b2c215da829c9f6cec2d7519bb79e.html#ab95b2c215da829c9f6cec2d7519bb79e">knet_channel_ref_set_domain_id</a></div><div class="ttdeci">void knet_channel_ref_set_domain_id(kchannel_ref_t *channel_ref, uint64_t domain_id)</div><div class="ttdoc">设置域ID </div><div class="ttdef"><b>Definition:</b> channel_ref.c:749</div></div>
<div class="ttc" id="a00056_a0d9e0afbf02fb6ed6c5b1415dce51b05_html_a0d9e0afbf02fb6ed6c5b1415dce51b05"><div class="ttname"><a href="a00056_a0d9e0afbf02fb6ed6c5b1415dce51b05.html#a0d9e0afbf02fb6ed6c5b1415dce51b05">socket_t</a></div><div class="ttdeci">#define socket_t</div><div class="ttdef"><b>Definition:</b> config.h:88</div></div>
<div class="ttc" id="a00054_a22a512506db436ec5a274202edcba89e_html_a22a512506db436ec5a274202edcba89e"><div class="ttname"><a href="a00054_a22a512506db436ec5a274202edcba89e.html#a22a512506db436ec5a274202edcba89e">knet_channel_ref_update_connect</a></div><div class="ttdeci">void knet_channel_ref_update_connect(kchannel_ref_t *channel_ref)</div><div class="ttdoc">管道事件处理-发起连接完成 </div><div class="ttdef"><b>Definition:</b> channel_ref.c:531</div></div>
<div class="ttc" id="a00054_acdd3ead2d27ffb0a86eba8f509631433_html_acdd3ead2d27ffb0a86eba8f509631433"><div class="ttname"><a href="a00054_acdd3ead2d27ffb0a86eba8f509631433.html#acdd3ead2d27ffb0a86eba8f509631433">knet_channel_ref_get_loop_node</a></div><div class="ttdeci">kdlist_node_t * knet_channel_ref_get_loop_node(kchannel_ref_t *channel_ref)</div><div class="ttdoc">取得管道链表节点 </div><div class="ttdef"><b>Definition:</b> channel_ref.c:416</div></div>
<div class="ttc" id="a00054_a0f7a4b69f5d64aebd6b33ca0a4311ffb_html_a0f7a4b69f5d64aebd6b33ca0a4311ffb"><div class="ttname"><a href="a00054_a0f7a4b69f5d64aebd6b33ca0a4311ffb.html#a0f7a4b69f5d64aebd6b33ca0a4311ffb">knet_channel_ref_update_accept_in_loop</a></div><div class="ttdeci">void knet_channel_ref_update_accept_in_loop(kloop_t *loop, kchannel_ref_t *channel_ref)</div><div class="ttdoc">在kloop_t所运行的线程内完成接收新连接流程 通过负载均衡触发 </div><div class="ttdef"><b>Definition:</b> channel_ref.c:518</div></div>
<div class="ttc" id="a00054_a39cd9444637453f7cc1b601d0d69eb5b_html_a39cd9444637453f7cc1b601d0d69eb5b"><div class="ttname"><a href="a00054_a39cd9444637453f7cc1b601d0d69eb5b.html#a39cd9444637453f7cc1b601d0d69eb5b">knet_channel_ref_update_accept</a></div><div class="ttdeci">void knet_channel_ref_update_accept(kchannel_ref_t *channel_ref)</div><div class="ttdoc">管道事件处理-监听到新连接请求 </div><div class="ttdef"><b>Definition:</b> channel_ref.c:482</div></div>
<div class="ttc" id="a00054_a6073314ca2d5893cf909982114ff6b9c_html_a6073314ca2d5893cf909982114ff6b9c"><div class="ttname"><a href="a00054_a6073314ca2d5893cf909982114ff6b9c.html#a6073314ca2d5893cf909982114ff6b9c">knet_channel_ref_connect_in_loop</a></div><div class="ttdeci">int knet_channel_ref_connect_in_loop(kchannel_ref_t *channel_ref)</div><div class="ttdoc">在kloop_t所运行的线程内完成连接流程 </div><div class="ttdef"><b>Definition:</b> channel_ref.c:706</div></div>
<div class="ttc" id="a00054_ab11817f208b858dea9792a0c9ea9e4bb_html_ab11817f208b858dea9792a0c9ea9e4bb"><div class="ttname"><a href="a00054_ab11817f208b858dea9792a0c9ea9e4bb.html#ab11817f208b858dea9792a0c9ea9e4bb">knet_channel_ref_get_ref</a></div><div class="ttdeci">int knet_channel_ref_get_ref(kchannel_ref_t *channel_ref)</div><div class="ttdoc">获取管道引用计数 </div><div class="ttdef"><b>Definition:</b> channel_ref.c:774</div></div>
<div class="ttc" id="a00033_html"><div class="ttname"><a href="a00033.html">_loop_t</a></div><div class="ttdef"><b>Definition:</b> loop.c:36</div></div>
<div class="ttc" id="a00054_a2e022541aa1a4ff04a15cd134788e335_html_a2e022541aa1a4ff04a15cd134788e335"><div class="ttname"><a href="a00054_a2e022541aa1a4ff04a15cd134788e335.html#a2e022541aa1a4ff04a15cd134788e335">knet_channel_ref_set_flag</a></div><div class="ttdeci">void knet_channel_ref_set_flag(kchannel_ref_t *channel_ref, int flag)</div><div class="ttdoc">设置管道自定义标志 </div><div class="ttdef"><b>Definition:</b> channel_ref.c:640</div></div>
<div class="ttc" id="a00054_a16cd64ed0ec7f68931aea3abd3bf1e24_html_a16cd64ed0ec7f68931aea3abd3bf1e24"><div class="ttname"><a href="a00054_a16cd64ed0ec7f68931aea3abd3bf1e24.html#a16cd64ed0ec7f68931aea3abd3bf1e24">knet_channel_ref_get_data</a></div><div class="ttdeci">void * knet_channel_ref_get_data(kchannel_ref_t *channel_ref)</div><div class="ttdoc">取得管道自定义数据 </div><div class="ttdef"><b>Definition:</b> channel_ref.c:655</div></div>
<div class="ttc" id="a00054_ab3c8eae266a90aee181b0cf4e9bcc731_html_ab3c8eae266a90aee181b0cf4e9bcc731"><div class="ttname"><a href="a00054_ab3c8eae266a90aee181b0cf4e9bcc731.html#ab3c8eae266a90aee181b0cf4e9bcc731">knet_channel_ref_create</a></div><div class="ttdeci">kchannel_ref_t * knet_channel_ref_create(kloop_t *loop, kchannel_t *channel)</div><div class="ttdoc">创建管道引用 </div><div class="ttdef"><b>Definition:</b> channel_ref.c:68</div></div>
<div class="ttc" id="a00054_aa87f4087c20f1937dd7d75ab783e1114_html_aa87f4087c20f1937dd7d75ab783e1114"><div class="ttname"><a href="a00054_aa87f4087c20f1937dd7d75ab783e1114.html#aa87f4087c20f1937dd7d75ab783e1114">knet_channel_ref_check_connect_timeout</a></div><div class="ttdeci">int knet_channel_ref_check_connect_timeout(kchannel_ref_t *channel_ref, time_t ts)</div><div class="ttdoc">检测管道发起的连接操作是否超时 </div><div class="ttdef"><b>Definition:</b> channel_ref.c:674</div></div>
<div class="ttc" id="a00056_accd62b4c787cfb91e81aa14210302863_html_accd62b4c787cfb91e81aa14210302863"><div class="ttname"><a href="a00056_accd62b4c787cfb91e81aa14210302863.html#accd62b4c787cfb91e81aa14210302863">knet_channel_event_e</a></div><div class="ttdeci">enum _channel_event_e knet_channel_event_e</div></div>
<div class="ttc" id="a00054_a0bbe382b036918b6a75f8d2d3e8b6a44_html_a0bbe382b036918b6a75f8d2d3e8b6a44"><div class="ttname"><a href="a00054_a0bbe382b036918b6a75f8d2d3e8b6a44.html#a0bbe382b036918b6a75f8d2d3e8b6a44">knet_channel_ref_close_check_reconnect</a></div><div class="ttdeci">void knet_channel_ref_close_check_reconnect(kchannel_ref_t *channel_ref)</div><div class="ttdoc">关闭管道并检查重连 </div><div class="ttdef"><b>Definition:</b> channel_ref.c:300</div></div>
<div class="ttc" id="a00054_acaa4747a62cce770cc798c2c30bf2670_html_acaa4747a62cce770cc798c2c30bf2670"><div class="ttname"><a href="a00054_acaa4747a62cce770cc798c2c30bf2670.html#acaa4747a62cce770cc798c2c30bf2670">knet_channel_ref_check_timeout</a></div><div class="ttdeci">int knet_channel_ref_check_timeout(kchannel_ref_t *channel_ref, time_t ts)</div><div class="ttdoc">检测管道是否空闲超时 </div><div class="ttdef"><b>Definition:</b> channel_ref.c:684</div></div>
<div class="ttc" id="a00054_a011250f757798988f6da99b53c74e9c8_html_a011250f757798988f6da99b53c74e9c8"><div class="ttname"><a href="a00054_a011250f757798988f6da99b53c74e9c8.html#a011250f757798988f6da99b53c74e9c8">knet_channel_ref_update</a></div><div class="ttdeci">void knet_channel_ref_update(kchannel_ref_t *channel_ref, knet_channel_event_e e, time_t ts)</div><div class="ttdoc">管道事件通知 </div><div class="ttdef"><b>Definition:</b> channel_ref.c:588</div></div>
<div class="ttc" id="a00054_a4bdd7b15093a0b5bec991ed019bb130c_html_a4bdd7b15093a0b5bec991ed019bb130c"><div class="ttname"><a href="a00054_a4bdd7b15093a0b5bec991ed019bb130c.html#a4bdd7b15093a0b5bec991ed019bb130c">knet_channel_ref_update_send</a></div><div class="ttdeci">void knet_channel_ref_update_send(kchannel_ref_t *channel_ref)</div><div class="ttdoc">管道事件处理-可以发送数据 </div><div class="ttdef"><b>Definition:</b> channel_ref.c:567</div></div>
<div class="ttc" id="a00007_html"><div class="ttname"><a href="a00007.html">_dlist_node_t</a></div><div class="ttdef"><b>Definition:</b> list.c:31</div></div>
<div class="ttc" id="a00054_a86bb8fd97323daf88aff1b8e9bbfe47c_html_a86bb8fd97323daf88aff1b8e9bbfe47c"><div class="ttname"><a href="a00054_a86bb8fd97323daf88aff1b8e9bbfe47c.html#a86bb8fd97323daf88aff1b8e9bbfe47c">knet_channel_ref_set_loop</a></div><div class="ttdeci">void knet_channel_ref_set_loop(kchannel_ref_t *channel_ref, kloop_t *loop)</div><div class="ttdoc">设置管道所属（相关联）kloop_t实例 </div><div class="ttdef"><b>Definition:</b> channel_ref.c:660</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
生成于 2015年 七月 27日 星期一 14:33:19 , 为 knet使用  &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
</body>
</html>
